Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Syntax highlighting</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Syntax_highlighting"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Syntax_highlighting rootpage-Syntax_highlighting skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Syntax highlighting</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>

<p><b>Syntax highlighting</b> is a feature of <a href="Text_editor" title="Text editor">text editors</a> that is used for <a href="Programming_language" title="Programming language">programming</a>, <a href="Scripting_language" title="Scripting language">scripting</a>, or <a href="Markup_language" title="Markup language">markup</a> languages, such as <a href="HTML" title="HTML">HTML</a>. The feature displays text, especially <a href="Source_code" title="Source code">source code</a>, in different <a href="Text_color" class="mw-redirect" title="Text color">colours</a> and <a href="Font" title="Font">fonts</a> according to the category of terms.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> This feature facilitates writing in a structured language such as a programming language or a markup language as both structures and <a href="Syntax_error" title="Syntax error">syntax errors</a> are visually distinct. This feature is also employed in many programming related contexts (such as programming manuals), either in the form of colourful books or online websites to make understanding code snippets easier for readers. Highlighting does not affect the meaning of the text itself; it is intended only for human readers.
</p><p>Syntax highlighting is a form of <a href="Secondary_notation" title="Secondary notation">secondary notation</a>, since the highlights are not part of the text meaning, but serve to reinforce it. Some editors also integrate syntax highlighting with other features, such as <a href="Spell_checking" class="mw-redirect" title="Spell checking">spell checking</a> or <a href="Code_folding" title="Code folding">code folding</a>, as aids to editing which are external to the language.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Practical_benefits">Practical benefits</h2></div>

<p>Syntax highlighting is one strategy to improve the readability and context of the text; especially for code that spans several pages. The reader can easily ignore large sections of comments or code, depending on what they are looking for.
Syntax highlighting also helps programmers find errors in their program. For example, most editors highlight <a href="String_literal" title="String literal">string literals</a> in a different colour. Consequently, spotting a missing <a href="String_literal#Bracketed_delimiters" title="String literal">delimiter</a> is much easier because of the contrasting colour of the text. <a href="Brace_matching" class="mw-redirect" title="Brace matching">Brace matching</a> is another important feature with many popular editors. This makes it simple to see if a brace has been left out or locate the match of the brace the cursor is on by highlighting the pair in a different colour.
</p><p>A study published in the conference <a href="Psychology_of_programming" title="Psychology of programming">PPIG</a> evaluated the effects of syntax highlighting on the comprehension of short programs, finding that the presence of syntax highlighting significantly reduces the time taken for a programmer to internalise the semantics of a program.<sup id="cite_ref-:0_2-0" class="reference"><a href="#cite_note-:0-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Additionally, data gathered from an eye-tracker during the study suggested that syntax highlighting enables programmers to pay less attention to standard syntactic components such as keywords.
</p>
<div class="mw-heading mw-heading2"><h2 id="Support_in_text_editors">Support in text editors</h2></div>

<p>Some text editors can also export the coloured markup in a format that is suitable for printing or for importing into word-processing and other kinds of text-formatting software; for instance as a HTML, colourized LaTeX, <a href="PostScript" title="PostScript">PostScript</a> or <a href="Rich_Text_Format" title="Rich Text Format">RTF</a> version of its syntax highlighting. There are several syntax highlighting <a href="Library_(computing)" title="Library (computing)">libraries</a> or "engines" that can be used in other applications, but are not complete programs in themselves, for example the Generic Syntax Highlighter (GeSHi) extension for <a href="PHP" title="PHP">PHP</a>.
</p><p>For editors that support more than one language, the user can usually specify the language of the text, such as <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="LaTeX" title="LaTeX">LaTeX</a>, <a href="HTML" title="HTML">HTML</a>, or the text editor can automatically recognize it based on the file extension or by scanning contents of the file. This automatic language detection presents potential problems.<sup id="cite_ref-PLangRec_3-0" class="reference"><a href="#cite_note-PLangRec-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> For example, a user may want to edit a document containing:
</p>
<ul><li>more than one language (for example when editing an <a href="HTML" title="HTML">HTML</a> file that contains embedded <a href="JavaScript" title="JavaScript">JavaScript</a> code),</li>
<li>a language that is not recognized (for example when editing source code for an obscure or relatively new programming language),</li>
<li>a language that differs from the file type (for example when editing source code in an extension-less file in an editor that uses file extensions to detect the language).</li></ul>
<p>In these cases, it is not clear what language to use, and a document may not be highlighted or be highlighted incorrectly. Some tools, like Guesslang and PLangRec, are designed to detect the programming language from the source code.<sup id="cite_ref-PLangRec_3-1" class="reference"><a href="#cite_note-PLangRec-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Syntax_elements">Syntax elements</h2></div>
<p>Most editors with syntax highlighting allow different colours and text styles to be given to dozens of different lexical sub-elements of syntax. These include keywords, comments, control-flow statements, variables, and other elements. Programmers often heavily customize their settings in an attempt to show as much useful information as possible without making the code difficult to read.
</p><p>Called <i>syntax decoration</i>, some editors also display certain syntactical elements in more visually pleasing ways, for example by replacing a pointer operator like <code>-&gt;</code> in source code by an actual arrow symbol (→), or changing <a href="Text_decoration" class="mw-redirect" title="Text decoration">text decoration</a> clues like /italics/, *boldface*, or _underline_ in source code comments by an actual <i>italics</i>, <b>boldface</b>, or <u>underlined</u> presentation.
</p>
<div class="mw-heading mw-heading3"><h3 id="Examples">Examples</h3></div>
<p>Below is a comparison of a <a href="Snippet_(programming)" title="Snippet (programming)">snippet</a> of <a href="C_(programming_language)" title="C (programming language)">C</a> code:
</p>
<table class="wikitable" width="100%">

<tbody><tr>
<th>Standard rendering
</th>
<th>Syntax highlighting
</th></tr>
<tr>
<td>
<div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre>/* Hello World */
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;

int main()
{
printf("Hello World\n");
return 0;
}
</pre></div>
</td>
<td>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span class="cm">/* Hello World */</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span>

<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span>
<span class="p">{</span>
<span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Hello World</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</td></tr></tbody></table>
<p>Below is another snippet of syntax highlighted <a href="C%2B%2B" title="C++">C++</a> code:
</p>
<div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span class="c1">// Create "window_count" Window objects:</span>
<span class="k">const</span><span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">window_count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kt">int</span><span class="p">{</span><span class="mi">10</span><span class="p">};</span>
<span class="k">auto</span><span class="w"> </span><span class="n">windows</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">array</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o">&lt;</span><span class="n">Window</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </span><span class="n">max_window_count</span><span class="o">&gt;</span><span class="p">{};</span>
<span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="k">auto</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kt">int</span><span class="p">{</span><span class="mi">0</span><span class="p">};</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">window_count</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">windows</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">make_shared</span><span class="o">&lt;</span><span class="n">Window</span><span class="o">&gt;</span><span class="p">();</span>
<span class="p">}</span>
</pre></div>
<p>In the C++ example, the editor has recognized the <a href="Keyword_(computer_programming)" class="mw-redirect" title="Keyword (computer programming)">keywords</a> <code>const</code>, <code>auto</code>, <code>int</code>, and <code>for</code>. The <a href="Comment_(computer_programming)" title="Comment (computer programming)">comment</a> at the beginning is also highlighted in a specific manner to distinguish it from working code.
</p>
<div class="mw-heading mw-heading2"><h2 id="History_and_limitations">History and limitations</h2></div>
<p>The ideas of syntax highlighting overlap significantly with those of <a href="Structure_editor" title="Structure editor">syntax-directed editors</a>. One of the first such editors for code was Wilfred Hansen's 1969 code editor, Emily.<sup id="cite_ref-hansen_4-0" class="reference"><a href="#cite_note-hansen-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> It provided advanced language-independent <a href="Autocomplete" title="Autocomplete">code completion</a> facilities, and unlike modern editors with syntax highlighting, actually made it impossible to create syntactically incorrect programs.
</p><p>In 1982, Anita H. Klock and Jan B. Chodak filed a patent for the first known syntax highlighting system,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> which was used in the Intellivision's <a href="Entertainment_Computer_System" title="Entertainment Computer System">Entertainment Computer System</a> (ECS) peripheral, released in 1983.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> It would highlight different elements of BASIC programs and was implemented in an attempt to make it easier for beginners, especially children, to start writing code.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Later, the Live Parsing Editor (<a href="LEXX_(text_editor)" title="LEXX (text editor)">LEXX</a>) written for the <a href="VM_(operating_system)" title="VM (operating system)">VM</a> operating system for the computerization of the <i><a href="Oxford_English_Dictionary" title="Oxford English Dictionary">Oxford English Dictionary</a></i> in 1985 was one of the first to use colour syntax highlighting. Its <i>live parsing</i> capability allowed user-supplied parsers to be added to the editor, for text, programs, data file, etc.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> On <a href="Microcomputers" class="mw-redirect" title="Microcomputers">microcomputers</a>, <i>MacPascal 1.0</i> (October 10, 1985) recognized Pascal syntax as it was typed and used font changes (e.g., bold for keywords) to highlight syntax on the monochrome <a href="Compact_Macintosh" title="Compact Macintosh">compact Macintosh</a> and automatically indented code to match its structure.<sup id="cite_ref-macpascal_10-0" class="reference"><a href="#cite_note-macpascal-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>Some text editors and code formatting tools perform syntax highlighting using <a href="Pattern_matching" title="Pattern matching">pattern matching</a> <a href="Heuristics" class="mw-redirect" title="Heuristics">heuristics</a> (e.g. <a href="Regular_expressions" class="mw-redirect" title="Regular expressions">Regular expressions</a>) rather than implementing a <a href="Parser" class="mw-redirect" title="Parser">parser</a> for each possible language.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> This can result in a text rendering system displaying somewhat inaccurate syntax highlighting and in some cases performing slowly. A solution used by text editors to overcome this problem is not always parsing the whole file but rather just the visible area, sometimes scanning backwards in the text up to a limited number of lines for "syncing".
</p><p>On the other hand, the editor often displays code during its creation, while it is incomplete or incorrect, and the strict parsers (like ones used in compilers) would fail to parse the code most of the time.
</p><p>Some modern, language-specific <a href="Integrated_development_environment" title="Integrated development environment">IDEs</a> (in contrast to text editors) perform full language parsing which results in very accurate understanding of code. An extension of syntax highlighting was called <i>"semantic highlighting"</i> in 2009 by David Nolden<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> for the open-source C++ IDE <a href="KDevelop" title="KDevelop">KDevelop</a>. For example, semantic highlighting may give local variables unique distinct colours to improve the comprehensibility of code. In 2014 the idea of coloured local variables was further popularized due to a blog post by Evan Brooks,<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> and after that, the idea was transferred to other popular IDEs like <a href="Visual_Studio" title="Visual Studio">Visual Studio</a>,<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> <a href="Xcode" title="Xcode">Xcode</a>,<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> and others.
</p><p>Colour in a user interface is less useful if the user has some degree of <a href="Color_blindness" title="Color blindness">colour blindness</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Comparison_of_text_editors#Programming_features" title="Comparison of text editors">Programming features</a> in a <a href="Comparison_of_text_editors" title="Comparison of text editors">Comparison of text editors</a></li>
<li><a href="Indent_style" class="mw-redirect" title="Indent style">Indent style</a></li>
<li><a href="Secondary_notation" title="Secondary notation">Secondary notation</a></li>
<li><a href="Structure_editor" title="Structure editor">Structure editor</a></li>
<li><a href="Parsing" title="Parsing">Parsing</a></li>
<li><a href="Solarized_(color_scheme)" class="mw-redirect" title="Solarized (color scheme)">Solarized (colour scheme)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFJim_D'AnjouSherry_ShavorScott_FairbrotherDan_Kehn2005" class="citation book cs1">Jim D'Anjou; Sherry Shavor; Scott Fairbrother; Dan Kehn; John Kellerman; Pat McCarthy (2005). <i>The Java developer's guide to Eclipse</i> (2nd&nbsp;ed.). Boston: Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-321-30502-2</bdi>.</cite></span>
</li>
<li id="cite_note-:0-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-:0_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSarkar2015" class="citation journal cs1">Sarkar, Advait (2015). <a rel="nofollow" class="external text" href="https://ppig.org/papers/2015-ppig-26th-sarkar1/">"The impact of syntax colouring on program comprehension"</a>. <i>Proceedings of the 26th Annual Conference of the Psychology of Programming Interest Group</i>: <span class="nowrap">49–</span>58. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150924080735/http://www.ppig.org/library/paper/impact-syntax-colouring-program-comprehension">Archived</a> from the original on 24 September 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">27 September</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-PLangRec-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-PLangRec_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-PLangRec_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFOscar_Rodriguez-PrietoAlejandro_PatoFrancisco_Ortin2025" class="citation journal cs1">Oscar Rodriguez-Prieto; Alejandro Pato; Francisco Ortin (2025). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.future.2024.107640">"PLangRec: Deep-learning model to predict the programming language from a single line of code"</a>. <i>Future Generation Computer Systems</i>. <b>166</b> 107640. Elsevier. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.future.2024.107640">10.1016/j.future.2024.107640</a></span>.</cite></span>
</li>
<li id="cite_note-hansen-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-hansen_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHansen1971" class="citation conference cs1">Hansen, Wilfred J. (1971). "User engineering principles for interactive systems". <i>Proceedings of the Fall Joint Computer Conference FJCC 39</i>. AFIPS. pp.&nbsp;<span class="nowrap">5623–</span>532.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFHansen" class="citation web cs1">Hansen, Wilfred. <a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/~wjh/Emily.html">"Emily - An Editor for Structured Text"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">17 June</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://patents.google.com/patent/US4617643A/en"><i>Syntax error correction method and apparatus</i></a>, 1982-10-29<span class="reference-accessdate">, retrieved <span class="nowrap">2018-04-12</span></span></cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://archive.org/details/Intellivision_Computer_Module_Owners_Guide_1983_Mattel_US"><i>Mattel Intellivision: Intellivision Computer Module Owner's Guide (1983)(Mattel)(US)</i></a>. 1983.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1 cs1-prop-unfit"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20180717123313/http://www.intellivisionlives.com/bluesky/hardware/ecs_tech.html">"Intellivision Classic Video Game System / Entertainment Computer System"</a>. <i>www.intellivisionlives.com</i>. Archived from the original on 2018-07-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-04-12</span></span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFCowlishaw,_M._F.1987" class="citation web cs1"><a href="Mike_Cowlishaw" title="Mike Cowlishaw">Cowlishaw, M. F.</a> (1987). <a rel="nofollow" class="external text" href="http://www.research.ibm.com/journal/rd/311/ibmrd3101G.pdf">"LEXX&nbsp;– A programmable structured editor"</a> <span class="cs1-format">(PDF)</span>. <i>IBM Journal of Research and Development, Vol 31, No. 1, IBM Reprint order number G322-0151</i>. IBM.</cite></span>
</li>
<li id="cite_note-macpascal-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-macpascal_10-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFAllen2011" class="citation mailinglist cs1"><a href="Bruce_Perens" title="Bruce Perens">Allen, Dan</a> (2011-10-10). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170821213822/https://lists.apple.com/archives/mpw-dev/2011/Oct/msg00000.html">"A Trio of Historical Recollections"</a>. <i>mpw-dev</i> (Mailing list). Archived from <a rel="nofollow" class="external text" href="https://lists.apple.com/archives/mpw-dev/2011/Oct/msg00000.html">the original</a> on 2017-08-21<span class="reference-accessdate">. Retrieved <span class="nowrap">12 September</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.kedit.com/wwkld.html">"KEDIT Language Definition Files"</a>. <i><a href="XEDIT#PC_and_Unix_adaptations" title="XEDIT">Kedit</a></i>. Mansfield Software Group, Inc. 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-04-07</span></span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://zwabel.wordpress.com/2009/01/08/c-ide-evolution-from-syntax-highlighting-to-semantic-highlighting/">"2009 blog post on Semantic Highlighting introduced in KDevelop by David Nolden"</a>. 8 January 2009.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFBrooks2017" class="citation web cs1">Brooks, Evan (17 April 2017). <a rel="nofollow" class="external text" href="https://medium.com/@evnbr/coding-in-color-3a6db2743a1e">"2014 blog post on Semantic Highlighting by Evan Brooks"</a>. <i>Medium</i>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://visualstudiomagazine.com/articles/2014/08/01/semantic-code-highlighting.aspx">"Visual Studio Magazine article on semantic highlighting"</a>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/kolinkrewinkel/Polychromatic">"Github page of a plugin which implements semantic highlighting for Xcode"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. 14 September 2022.</cite></span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-03" href="https://en.wikipedia.org/wiki/?title=Syntax_highlighting&amp;oldid=1304091611">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>